package com.sc.nft.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sc.nft.entity.DepartmentWallet;
import com.sc.nft.entity.DepartmentWalletDetail;
import com.sc.nft.entity.SysMember;
import com.sc.nft.enums.ApprovalStatusEnum;
import com.sc.nft.enums.MarketLevelEnum;
import com.sc.nft.enums.wallet.DepartmentDetailTypeEnum;
import com.sc.nft.enums.wallet.DepartmentTypeEnum;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 部门钱包表服务接口
 *
 * @author zxy
 * @since 2023-12-18 18:02:52
 * @description 由 Mybatisplus Code Generator 创建
 */
public interface DepartmentWalletService {
    /**
     * 加钱
     * @param type
     * @param amount
     */
    void addBalance(DepartmentTypeEnum type, MarketLevelEnum marketLevel, String orderNo,    BigDecimal amount);
    /**
     * 列表
     */
    Page<DepartmentWallet> page(Page page);


    Page<DepartmentWalletDetail> record(DepartmentTypeEnum departmentType, Long userId, DepartmentDetailTypeEnum type, MarketLevelEnum marketLevel, ApprovalStatusEnum status, String orderNo, Date startTime, Date endTime, Page page);

    /**
     * 转账
     * @param departmentType
     * @param sysMember
     * @param userTel
     * @param amount
     */
    void transfer(DepartmentTypeEnum departmentType, SysMember sysMember,String userTel,BigDecimal amount,String applyRemark);

    /**
     * 撤销
     * @param id
     * @param sysMember
     */
    void revoke(Long id, SysMember sysMember);

    /**
     * 审批
     * @param id
     * @param status
     * @param approvalRemark
     * @param sysMember
     */
    void approval(Long id, Boolean status,String approvalRemark, SysMember sysMember);
 }
